#ifndef __OC_NetcdfDimensionWrapper_H__
#define __OC_NetcdfDimensionWrapper_H__

#include "NetcdfDimensionData.h"

namespace OCPP
{
	class NetcdfDimensionWrapper
	{
	public:
		~NetcdfDimensionWrapper()
		{

		}
		void read(GridVariablePtr& variable,const VolumeOptions& options);
		GridData getShapeData(GridVariablePtr& variable, const VolumeOptions& options);
		GridData getShapeDataByT(int timeIndex, GridVariablePtr& variable, const VolumeOptions& options);
		GridData getShapeDataByZ(int zIndex, GridVariablePtr& variable, const VolumeOptions& options);
		GridData getShapeDataByTZ(int timeIndex, int zIndex, GridVariablePtr& variable, const VolumeOptions& options);
		String getTimeString(int timeIndex);

		std::shared_ptr<NetcdfDimensionData> dimT;
		std::shared_ptr<NetcdfDimensionData> dimZ;
		std::shared_ptr<NetcdfDimensionData> dimY;
		std::shared_ptr<NetcdfDimensionData> dimX;
		GridExtent extent;
		FloatVector levelData;
	};
}

#endif